package sparrowGui
{
	import flash.display.Sprite;
	
	import sparrowGui.item.Item;
	import sparrowGui.utils.PubFun;
	
	/**
	 * 普通表格组件(此表格的数据是按二维数据存放的)，滚动条会随着
	 * @author Pelephone
	 */	
	public class Table extends VList
	{
		public var selRowOrCol:int;		//选择方式，选择行还是列.0是按行选择，1是按列选择
		
		/**
		 * 构造表格 
		 * @param data	数据数组，一个二维数组。通过此数组可以算出表格的列数和行数
		 * @param sty 	表格的基本样式
		 * @param pagePlus 与翻页插件关联
		 */
		public function Table(data:Array,itemsClass:Class=null,vars:Object=null,scrollSkin:Sprite=null)
		{
			if(!vars) vars = SparrowGUI.getIns().vhlist;
			super(data,itemsClass,vars);
		}
		
		/**
		 * 创建列表数据.
		 */
/*		override protected function makeListItems():void
		{
			if(!style.itemOdds || !isOdds)
				oddsByDatas(itemsData[0]);
			
			PubFun.clearDisp(contDP);
			
			style.rowNum = (style.rowNum<=0)?itemsData.length:
				(itemsData.length>style.rowNum)?style.rowNum:itemsData.length;
			
			for(var i:int = 0; i < itemsData.length; i++){
				for(var j:int = 0; j<(itemsData[i] as Array).length; j++){
					var index:int = i*1000+j;
					var oItem:Item = createItem(itemsData[i][j],index);
					if(!style.autoSort) continue;
					var ww:int = style.width - style.paddingLeft - style.paddingRight - (isScroll?style.scrollBarVar.width:0);
//					ww = (j<(itemsData[i] as Array).length-1)?tmpx;
					ww = (ww*style.itemOdds[j]-style.spacing);
					oItem.setSize(ww,(style.itemVar.height));
				}
			}
			super.makeListItems()
			arrangeItems();
		}*/
		
		// 将item项排列子项的x,y值
		override protected function arrangeItems():void
		{
/*			for(var i:int = 0; i < itemsData.length; i++){
				var tmpX:int=0;
				for(var j:int = 0; j<(itemsData[i] as Array).length; j++){
					var oItem:Item = getItemByRC(i,j);
					var autoY:int = Math.ceil(i*(style.spacing + style.itemVar.height));
					oItem.x = !style.colWidth?tmpX:(style.colWidth*j);
					oItem.y = !style.rowHeight?autoY:(style.rowHeight*i);
					tmpX += (oItem.width+style.spacing);
				}
			}*/
			PubFun.arrangeDispRC(contDP,style.colNum,style.colWidth,style.rowHeight);
		}

		///////////////////////////////////
		// public methods
		///////////////////////////////////
		
		// 通过行列数找到列表项
		public function getItemByRC(row:int,col:int):Item
		{
			return getItemByIndex(row*1000+col);
		}
		
		
		public function getRowByIndex(ind:int):int
		{
			return int(ind/1000);
		}
		
		public function getColByIndex(ind:int):int
		{
			return int(ind%1000);
		}
		
		///////////////////////////////////
		// event handlers
		///////////////////////////////////
		
		//每格百分比总数加起来>1则返回假
		private function get isOdds():Boolean
		{
			var totNum:Number = 0;
			if(!style.itemOdds) return false;
			for each(var i:Number in style.itemOdds){
				if(i<=0) return false;
				totNum += i;
			}
			if(totNum<=1) return true;
			else return false;
		}
	}
}